perm filename X[MUS,LCS] blob sn#309800 filedate 1977-10-13 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002
C00006 ENDMK
C⊗;

      EXTERNAL FUNCTION GETIN3(ARRAY J,INSR,INBT,INCH,INMX,INDR),
      RDSMP3(ARRAY N,BITS);
 
      ARRAY INF(1536);
      VARIABLE /CNT,/RD,/SCNT,INCH,INSR,INMX,INDR,INBT,INBUF,
      IX,/INC,RX,JZ,IZ;

      FUNCTION PRNTIT(CNT,INSR,INBT,INCH,INMX,INDR,INBUF);  
      BEGIN 
        INBUF←1535-512*INBT ;     
        PRINT "SRATE=",INSR," BITS=",12+INBT*6," NCHNS=",INCH,
        " MAXAMP=",INMX," DUR=",INDR/INSR/INCH;
            INDR←INDR-2;
      END;

      FUNCTION READIN(RD);
      BEGIN 		<DON'T FORGET TO INIT AND SCNT ← 0;
        IF SCNT=0 THEN BEGIN        
          GETIN3(INF,INSR,INBT,INCH,INMX,INDR); <HEADER IS READ INTO ARRAY INF.
          PRNTIT(CNT,INSR,INBT,INCH,INMX,INDR,INBUF);
           RDSMP3(INF,INBT);   INBUF←INBUF+1;
     	   CNT←0;  RX←INF(CNT);
        END;
        SCNT←SCNT+INC; 
        IF SCNT > INDR THEN  BEGIN <CHECK TO SEE IF SMPL CNT IS EXCEEDED
           RD←0;  RETURN(RD); END;
        RX←INF(CNT);
JZ←CNT+1;
        CNT←CNT+INC; <UPDATE THE COUNTER
        IF JZ ≥ INBUF THEN BEGIN
           RDSMP3(INF,INBT);
           CNT←CNT-INT(CNT);
JZ←CNT;
       	    END;
         IX ← INF(JZ);
IZ←JZ-INT(JZ);
            RD←RX+(IX-RX)*IZ;   < INTERPOLATION
<<<PRINT "   ****",CNT,JZ,RX,IX,IZ,RD;
        RETURN(RD); END; 

	OUTFILE←"OU.SND";
      INSTRUMENT READA;
<IF P1 > .5 THEN BEGIN  IF SCNT > 3620 THEN BEGIN PRINT RD;
<IF RD≠0 THEN PRINT CNT; IF RD ≠0 THEN PRINT SCNT;END;END;
      OUTA←OUTA+P4*READIN(RD);
      END;
      SETMAG;1 12
      PLAY;
      READA  0   .5   0  .7   .00025   300  ;
      INC← 1/1.28;
      SCNT←0; INFILE←"U"; 
      READA .5   .37  0  1.5  .00025   300  ; PRINT "AGAIN  ";
      INC←INC*D/C;
      SCNT←0; INFILE←"U"; 
      READA 1    .38  0  1.5  .00025   300  ; PRINT "AGAIN  ";
      INC←INC*E/D;
      SCNT←0; INFILE←"U"; 
      READA 1.5  .5   0  1.   .00025   300  ; PRINT "AGAIN  ";
      INC←INC*C/E;
      SCNT←0; INFILE←"U"; 
      FINISH;